package com.sdu.cloudservice.service.impl;

import com.sdu.cloudservice.dao.ActualPriceDao;
import com.sdu.cloudservice.dao.UserDao;
import com.sdu.cloudservice.dto.Envelope;
import com.sdu.cloudservice.entity.ActualPriceEntity;
import com.sdu.cloudservice.service.ActualPriceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.*;

/**
 * Created by lenovo on 2019/6/26.
 * @author
 * ZMX
 */
@Service
public class ActualPriceServiceImpl implements ActualPriceService{
    @Autowired
    private ActualPriceDao actualPriceDao;
    @Autowired
    private UserDao userDao;

    @Override
    public Envelope getActualPrice(String username,String zoneId, String instanceId, String start_time, String end_time) {
        List<ActualPriceEntity> lsit=new ArrayList<ActualPriceEntity>();
        List<ActualPriceEntity> list1;

        ActualPriceEntity actualPriceEntity=actualPriceDao.getActualPriceByZoneIdAndInstanceId1(zoneId,instanceId,start_time);
        if(actualPriceEntity==null){
            actualPriceEntity=actualPriceDao.getActualPriceByZoneIdAndInstanceId2(zoneId,instanceId,start_time);
            actualPriceEntity.setTime(start_time);
        }
        lsit.add(actualPriceEntity);

        ActualPriceEntity actualPriceEntity1=actualPriceDao.getActualPriceByZoneIdAndInstanceId2(zoneId,instanceId,end_time);
        actualPriceEntity1.setTime(end_time);

        list1=actualPriceDao.getActualPriceByZoneIdAndInstanceId3(zoneId,instanceId,end_time,start_time);

        int n=list1.size();
        for(int i=n-1;i>=0;i--){
            lsit.add(list1.get(i));
        }
        lsit.add(actualPriceEntity1);
        userDao.addQueryTimes(username);
        return new Envelope(lsit);
    }
}
